Release 10.1A: OpenEdge Development:
ProDataSets
Passing a ProDataSet with APPEND
You can include the
APPENDkeyword in a ProDataSetOUTPUTparameter just as you can for a temp-table. For example:
In this example, suppose that ProDataSet
MyDSetis defined within the calling procedure and has already been filled with some amount of data, normally in a previous call to a procedure on serverXYZ. In that previous call, not all the data that could be used was filled. The procedure on the server might have deactivated some of the relations in the ProDataSet in order not to fill all levels of detail (on instructions from the client, perhaps).Based on some event on the client, such as the user selecting a particular parent record for which detail has not yet been filled, the client procedure runs
getMoreData.pon the server with the same ProDataSet as anOUTPUTparameter along with possibly one or more additional parameters that indicate how the ProDataSet should be further filled. The server procedure fills that part of the ProDataSet the caller wants, perhaps by retrieving the parent record the user wanted more detail for, and then doing aFILLon that buffer, which would fill all its children. The server procedure then returns the ProDataSet to the caller.The
APPENDkeyword tells Progress to append all the data passed back to the data that is already in the client’s ProDataSet. Duplicate rows will result in an error when the data is appended, and thus must be eliminated in advance, before making the call. This happens regardless of the setting of theFILL-MODEattribute on the ProDataSet’s buffers. TheFILL-MODEthus applies only onFILL, not on parameter passing.If you need to empty one or more of the receiving procedure’s temp-tables during this kind of operation, you can simply empty it before the call, rather than using the
EMPTY FILL-MODE.If you want to refresh records with later versions from the called procedure, you must empty the table or delete the selected records to be refreshed before making the call.
Another typical use case beyond filling in levels of detail not yet retrieved is to define a form of batching of data by requesting more records for one or more tables not yet completely filled.
For an exploration of batching and selective filling use cases, see Chapter 8, "Batching Data with ProDataSets,"), and Chapter 7, " Advanced Events and Attributes."
|
Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |